package com.haohan.jingyuan.common.util;

import com.haohan.jingyuan.common.entity.BaseEntity;

import java.util.Date;

/**
 * 实体工具类
 * 提供实体共通字段的设置方法
 *
 * @ClassName EntityUtil
 * @Description 实体工具类
 * @Author hexijun
 * @Time 2025/01/18 23:15
 * @Version 1.0
 */
public class EntityUtil {

    /**
     * 设置创建信息
     *
     * @param entity  实体对象
     * @param creator 创建人
     */
    public static void setCreateInfo(BaseEntity entity, String creator) {
        entity.setCreator(creator);
        entity.setGmtCreated(new Date());
        entity.setIsDeleted("N");
    }

    /**
     * 设置修改信息
     *
     * @param entity   实体对象
     * @param modifier 修改人
     */
    public static void setModifyInfo(BaseEntity entity, String modifier) {
        entity.setModifier(modifier);
        entity.setGmtModified(new Date());
    }

    /**
     * 设置创建和修改信息
     *
     * @param entity   实体对象
     * @param operator 操作人
     */
    public static void setCreateAndModifyInfo(BaseEntity entity, String operator) {
        setCreateInfo(entity, operator);
        setModifyInfo(entity, operator);
    }

    /**
     * 逻辑删除
     *
     * @param entity   实体对象
     * @param modifier 修改人
     */
    public static void logicalDelete(BaseEntity entity, String modifier) {
        entity.setIsDeleted("Y");
        setModifyInfo(entity, modifier);
    }

    /**
     * 恢复删除
     *
     * @param entity   实体对象
     * @param modifier 修改人
     */
    public static void restore(BaseEntity entity, String modifier) {
        entity.setIsDeleted("N");
        setModifyInfo(entity, modifier);
    }
}
